<template>
  <div class="statisticsListPage h100 tablePageWarpOther">

    <div class="statisticsListSearch commonSelectWidth table-page-search-wrapper" style="margin-bottom: 0px">
      <div class="statisticsListSearchCont" >
        <a-row
          :gutter="[10, 0]"
          style="height: 60px;"
        >
          <!-- VIN -->
          <a-col
            :span="3">
            <a-form-model-item :label="'VIN'" >
              <a-input
                :placeholder="$t('pleaseInput') + 'VIN'"
                size="small"
                v-model="queryParams.vin"
                @keyup.enter="searchData"
                :allow-clear="true"/>
            </a-form-model-item>
          </a-col>
          <!-- OTA任务 -->
          <a-col
            :span="3">
            <a-form-model-item :label="$t('campaignName')" >
              <task-select
                :time="taskSelectTime"
                :default-task-id="queryParams.taskId"
                @changeoption="(val) => {changeTask(val, 'taskId');searchData()}"
                :clear="true"
                style="width:100%"
              ></task-select>
            </a-form-model-item>

          </a-col>
          <a-col
            :span="3">
            <a-form-model-item :label="$t('otaTaskType')" >
              <a-select
                :showSearch="true"
                :placeholder="$t('otaTaskType')"
                :allow-clear="true"
                v-model="queryParams.taskBigType"
                optionFilterProp="children"
                :filterOption="$commonFun.filterOption"
                @change="searchData(false)"
                style="width:100%"
              >
                <a-select-option value="0">
                  研发测试任务
                </a-select-option>
                <a-select-option value="1">
                  通道测试任务
                </a-select-option>
                <a-select-option value="2">
                  正式OTA任务
                </a-select-option>
                <a-select-option value="30">
                  成品库OTA任务
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
          <!-- 升级类型 -->
          <a-col
            :span="3">
            <a-form-model-item :label="$t('upgradeType')" >
              <a-select
                :showSearch="true"
                :placeholder="$t('upgradeType')"
                :allow-clear="true"
                v-model="queryParams.upgradeType"
                optionFilterProp="children"
                :filterOption="$commonFun.filterOption"
                @change="searchData(false)"
                style="width:100%"
              >
                <a-select-option value="0">
                  用户升级-强制升级
                </a-select-option>
                <a-select-option value="1">
                  用户升级-非强制升级
                </a-select-option>
                <a-select-option value="2">
                  自动升级-静默升级
                </a-select-option>
                <a-select-option value="3">
                  自动升级-非静默升级
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
          <!-- 批次号 -->
          <a-col
            :span="3">
            <a-form-model-item :label="'批次号'" >
              <a-input
                size="small"
                :placeholder="$t('pleaseInput') + '批次号'"
                :allow-clear="true"
                @keyup.enter="searchData"
                style="width:100%"
                v-model="queryParams.batchId" />
            </a-form-model-item>
          </a-col>
          <!-- 升级结果下拉框 -->
          <a-col
            :span="3">
            <a-form-model-item :label="'升级结果'">
              <a-select
                :showSearch="true"
                mode="multiple"
                :maxTagCount=1
                :placeholder="$t('pleaseInput') + '升级结果'"
                :allow-clear="true"
                v-model="queryParams.upgradeResult"
                @change="searchData(false)"
                style="width:100%; height: 40px; padding-top: 4px"
              >
                <a-select-option value="已唤醒">
                  已唤醒
                </a-select-option>
                <a-select-option value="未唤醒">
                  未唤醒
                </a-select-option>
                <a-select-option value="唤醒失败">
                  唤醒失败
                </a-select-option>
                <a-select-option value="检测成功">
                  检测成功
                </a-select-option>
                <a-select-option value="检测失败">
                  检测失败
                </a-select-option>
                <a-select-option value="下载失败">
                  下载失败
                </a-select-option>
                <a-select-option value="ECU下载中">
                  ECU下载中
                </a-select-option>
                <a-select-option value="下载成功">
                  下载成功
                </a-select-option>
                <a-select-option value="安装成功">
                  安装成功
                </a-select-option>
                 <a-select-option value="安装中">
                  安装中
                </a-select-option>
                <a-select-option value="安装失败">
                  安装失败
                </a-select-option>
                <!-- <a-select-option value="删除升级包成功">
                  删除升级包成功
                </a-select-option>
                <a-select-option value="删除升级包失败">
                  删除升级包失败
                </a-select-option> -->
                <a-select-option value="未知">
                  未知
                </a-select-option>
           </a-select>
            </a-form-model-item>

          </a-col>
          <!-- 车系 -->
          <a-col
            :span="3">
            <a-form-model-item :label="$t('brand')" >
              <a-select
                v-model="queryParams.brandId"
                showSearch
                allow-clear
                :placeholder="$t('brand')"
                :maxTagCount="1"
                optionFilterProp="children"
                :filterOption="$commonFun.filterOption"
                @change="searchData()"
                style="width:100%"
              >
                <a-select-option
                  v-for="(item,index) in brandSeleList"
                  :key="'brand'+index"
                  :value="item.id"
                  :title="item.name"
                >
                  {{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
          <!-- 车型 -->
          <a-col
            :span="3">
            <a-form-model-item :label="'车型'" >
              <!-- TODO 此处暂时先改成default单选，因为查询接口中没有modelCode字段，不好处理为多选，后续后端补回字段后，此处将改回多选 -->
              <!-- 此处和产品沟通了，先改为单选，后续多选查询需求增大，再改为多选 -->
              <car-model-code-select
                mode="default"
                :query="{ time:instantUpdateTime, selectAll: false}"
                :has-all="false"
                :clear="true"
                v-model="queryParams.modelCode"
                @changeoption="(val,item) => {queryParams.modelName = item ? item.name : undefined;searchData()}"
                style="width:100%; height: 40px; padding-top: 4px"
                :placeholder="$t('vehicleModel')"
              ></car-model-code-select>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row
          :gutter="[10, 0]"
          style="padding-top: 0px;"
        >
          <!-- 款型 -->
          <!-- 此组件查询款型，粒度太粗，和实际不符，产品反馈先去除 -->
          <!-- <a-col
            :span="3">
            <a-form-model-item :label="'款型'" >
              <car-model-select
                mode="multiple"
                :query="{ time:instantUpdateTime, code: queryParams.modelCode}"
                :has-all="false"
                :clear="true"
                v-model="queryParams.modelIds"
                @changeoption="(val,item) => {queryParams.trimLevelName = item ? item.name : undefined;searchData()}"
                style="width:100%; height: 40px; padding-top: 4px">
              </car-model-select>
            </a-form-model-item>
          </a-col> -->
          <!-- 目标车辆版本 -->
          <a-col
            :span="3">
            <a-form-model-item :label="$t('TargetVehicleVersion')" >
              <a-input
                v-model="queryParams.normalVersion"
                style="width:100%"
                :placeholder="$t('TargetVehicleVersion')"
                @keyup.enter="searchData"
                :allow-clear="true"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col
            :span="3">
            <a-form-model-item :label="'DiLink版本'" >
              <media-version-name-select
                ref="mediaVersionRef"
                mode="multiple"
                :time="time"
                :default-value="selectedMediaVersion"
                @changeoption="val => {queryParams.mediaVersion=val;searchData()}"
                style="width:100%; height: 40px; padding-top: 4px"
              ></media-version-name-select>
            </a-form-model-item>

          </a-col>
          <a-col
            :span="6" >
            <a-form-model-item label="数据上报时间" >
              <a-range-picker
                :allow-clear="true"
                :value="defaultDateRange"
                :placeholder="['数据上报时间开始', '数据上报时间结束']"
                @change="selectDateRange"
                :show-time="{
                  hideDisabledOptions: true,
                  defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
                }"
                style="width:100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="3">
            <a-form-model-item :label="'升级状态码'" >
              <a-input
                size="small"
                :maxLength="4"
                :placeholder="$t('pleaseInput') + '升级状态码'"
                :allow-clear="true"
                @keyup.enter="searchData"
                style="width:100%"
                v-model="queryParams.normalStatus" />
            </a-form-model-item>
          </a-col>
          <a-col :span="3">
            <a-form-model-item :label="'失败报文类型'" >
              <a-select
                v-model="queryParams.errorLogType"
                allow-clear
                mode="multiple"
                :placeholder="$t('失败报文类型')"
                :maxTagCount="1"
                style="width:100%; height: 40px; padding-top: 4px"
                @change="changeErrorLogType"
              >
                <a-select-option
                  v-for="item in errorLogTypeDictCode"
                  :key="item.value"
                  :value="item.value"
                  :title="item.name"
                >
                  {{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <div class="searchBtns">
              <a-button-group>
                <auth-button type="primary" :auth="statisticsPerms.monitor.view" @click="searchData">
                  <i class="iconfont icon-chazhao"/>{{ $t('inquiry') }}
                </auth-button>
                <auth-button @click="clearCondition" type="info" :auth="statisticsPerms.monitor.view">
                  <i class="iconfont icon-qingkong"/>{{ $t('clear') }}
                </auth-button>
              </a-button-group>
              <!-- 导出 -->
              <auth-button
                style="vertical-align: bottom;"
                type="primary"
                :loading="exportingDetail"
                :auth="statisticsPerms.monitor.export"
                @click="exportUpgradeMonitor">
                <i class="iconfont icon-xiazai"></i>导出
              </auth-button>
              <question-mark-tip
                tip-title="仅支持导出100w条数据"
                :popupContainer="$commonFun.getPopupContainer"
              ></question-mark-tip>
            </div>
          </a-col>
        </a-row>
      </div>
    </div>

    <div class="statisticsListMain">
      <div class="statisticsListMainLeft">
        <s-table
          ref="table"
          size="default"
          rowKey="id"
          :columns="columns"
          :data="loadData"
          :scrollX="1100"
          class="h100">
          <template slot-scope="text" v-for="column in commonColumns" :slot="column.scopedSlots.customRender">
            <table-ellipsis :text="text || '-' " :key="column.key"></table-ellipsis>
          </template>
          <template #taskBigType="text, record">
            <span v-if="record.taskBigType===0" >研发测试任务</span>
            <span v-if="record.taskBigType===1" >通道测试任务</span>
            <span v-if="record.taskBigType===2" >正式OTA任务</span>
            <span v-if="record.taskBigType===30" >成品库OTA任务</span>
          </template>
          <template #upgradeType="text, record">
            <span v-if="record.upgradeType===0">用户升级-强制升级</span>
            <span v-if="record.upgradeType===1">用户升级-非强制升级</span>
            <span v-if="record.upgradeType===2">自动升级-静默升级</span>
            <span v-if="record.upgradeType===3">自动升级-非静默升级</span>
          </template>
          <template #reportingTime="text">
            <table-ellipsis :text="$commonFun.getDateMinuteStr(text)"></table-ellipsis>
          </template>
          <template #normalTime="text">
            <table-ellipsis :text="$commonFun.getDateMinuteStr(text)"></table-ellipsis>
          </template>
          <template #failLogType="text,record">
            <span v-if="record.diagnoseFile==1">诊断日志 </span>
            <span v-if="record.errorFile==1">升级失败日志 </span>
            <span v-if="record.fotalogFile==1">车云交互日志 </span>
            <span v-if="!record.diagnoseFile && !record.errorFile && !record.fotalogFile">-</span>
          </template>
          <template slot="operation" slot-scope="text, record">
            <span class="tableOperateSty" style="display: flex;">
              <auth-button
                type="primary"
                :ghost="true"
                size="small"
                :auth="statisticsPerms.monitor.detail"
                @click="ecuListDetail(record)"><i class="iconfont icon-yanjing"/>查看</auth-button>
              <auth-button
                v-if="record.file"
                type="primary"
                :ghost="true"
                size="small"
                @click="showEcuExceptionDetail(record)">异常日志</auth-button>
            </span>
          </template>
        </s-table>
      </div>

    </div>
    <!-- 异常日志 -->
    <part-update-exception-log-dialog
      ref="partUpdateExceptionLogDialog"
      height="60vh"
      width="60%"
      :packageFile="packageFile"
      :query="exceptionDialogQuery"
      compt="showCarLog"
      :title="logTitle"
    ></part-update-exception-log-dialog>
  </div>
</template>

<script>
import PartUpdateExceptionLogDialog from '@/views/components/PartUpdateExceptionLog/dialog.vue'
import CarModelSelect from '@/views/components/CarModelSelect'
import { fotaMonitorColumns } from './config/list'
import TableEllipsis from '@/components/Ellipsis/TableEllipsis'
import STable from '@/components/Table/index'
// import { STable } from '@/components'
import FullParentDomWithDask from '@/components/LoadDataSpin/FullParentDomWithDask.vue'
import logApi from '@/api/modules/log'
import statisticsApi from '@/api/modules/statistics'

import fileApi from '@/api/modules/system/fileUpload'
import { downloadBlobFile } from '@/utils/functions'
import AuthButton from '@/components/AuthButton'
import AuthText from '@/components/AuthText'
import { statisticsPerms } from '@/config/permission/index'
import moment from 'moment'
import QuestionMarkTip from '@/views/components/QuestionMarkTip'
import MediaVersionNameSelect from '@/views/components/MediaVersionNameSelect'
import ModelNameSelect from '@/views/components/ModelNameSelect'
import { mapState } from 'vuex'
import CarModelCodeSelect from '@/views/components/CarModelCodeSelect'
import TaskSelect from '@/views/components/TaskSelect'
import FilterBoxCollection from '@/components/SelfComponents/FilterBoxCollection'
const initQueryParams = {
  vin: '',
  taskName: '',
  // 车型
  modelIds: [],
  batchId: '',
  upgradeResult: undefined,
  createTimeLte: '',
  createTimeGte: '',
  mediaVersion: undefined,
  modelName: undefined,
  modelCode: undefined,
  taskId: undefined,
  // 车系id
  brandId: undefined,
  // 款型id
  modelId: undefined,
  normalVersion: '',
  taskBigType: undefined,
  upgradeType: undefined,
  trimLevelName: undefined,
  normalStatus: undefined,
  errorLogType: undefined,
  fotalogFile: undefined,
  diagnoseFile: undefined,
  errorFile: undefined
}
export default {
  components: {
    PartUpdateExceptionLogDialog,
    CarModelSelect,
    STable,
    TableEllipsis,
    FullParentDomWithDask,
    AuthButton,
    AuthText,
    QuestionMarkTip,
    MediaVersionNameSelect,
    ModelNameSelect,
    CarModelCodeSelect,
    TaskSelect,
    FilterBoxCollection
  },
  data () {
    return {
      // 查看异常日志的搜索条件
      exceptionDialogQuery: null,
      moment,
      statisticsPerms,
      exporting: false,
      columns: fotaMonitorColumns,
      queryParams: {
        ...initQueryParams,
        taskId: undefined,
        vin: ''
      },
      // 升级异常车型分布数据
      modelStatisticsData: [],
      loadingModelStatisticsData: true,
      pageInfo: {
        pageSize: 14,
        pageNo: 1
      },
      totalCount: 0,
      exportingDetail: false,
      exportingDistribute: false,
      firstIn: false,
      time: Date.now(),
      taskSelectTime: 12344321,
      brandSeleList: [],
      packageFile: {},
      logTitle: ""
    }
  },
  watch: {
    isOneTaskDetail: {
      handler () {
        this.order = ''
        this.sortedInfo = null
      }
    },
    'queryParams.taskId' (val, old) {
      if (old === this.$route.query.taskId) {
        this.upDateQuery()
      }
    }
  },
  computed: {
    commonColumns () {
      return this.columns.filter(item => !item.special)
    },
    // 多媒体版本
    selectedMediaVersion () {
      return this.queryParams.mediaVersion === null ? '' : this.queryParams.mediaVersion
    },
    // 车型
    selectedModelName() {
      return this.queryParams.modelName === null ? '' : this.queryParams.modelName
    },
    ...mapState({
      instantUpdateTime: (state) => state.app.instantUpdateTime,
      errorLogTypeDictCode: (state) => state.dict.errorLogTypeDictCode
    }),
    // 日期选择的默认值
    defaultDateRange () {
      if (this.queryParams.createTimeGte && this.queryParams.createTimeLte) {
        return [moment(this.queryParams.createTimeGte), moment(this.queryParams.createTimeLte)]
      }
      return []
    },
    isOneTaskDetail () {
      return Boolean(this.$route.query.t)
    }
  },
  created () {
    this.filterItem()
    this.firstIn = true
    this.getTaskIdInRoute(this.$route)
    this.queryParams.vin = this.$route.query.vin
    this.queryParams.taskName = this.$route.query.taskName
    this.queryParams.modelIds = this.$route.query.modelIds
    this.queryParams.batchId = this.$route.query.batchId
    this.queryParams.upgradeResult = this.$route.query.upgradeResult
    this.queryParams.createTimeLte = this.$route.query.createTimeLte
    this.queryParams.createTimeGte = this.$route.query.createTimeGte
    this.queryParams.mediaVersion = this.$route.query.mediaVersion
    this.queryParams.modelName = this.$route.query.modelName
    this.queryParams.modelCode = this.$route.query.modelCode
    this.queryParams.brandId = this.$route.query.brandId
    this.queryParams.modelId = this.$route.query.modelId
    this.queryParams.normalVersion = this.$route.query.normalVersion
    this.queryParams.taskBigType = this.$route.query.taskBigType
    this.queryParams.upgradeType = this.$route.query.upgradeType
    this.$store.dispatch('getErrorLogTypeDictCodeData')
  },
  // query 传参，参数变化会重新创建组件，故只需在created中执行即可
  // beforeRouteUpdate(to, from, next) {
  //   this.getTaskIdInRoute(to);
  //   this.$nextTick(this.searchData);
  //   next();
  // },
  methods: {
    changeErrorLogType(data){
      if(data.includes('fotalogFile')){
        this.queryParams.fotalogFile=1
      }else{
        this.queryParams.fotalogFile=0
      }
      if(data.includes('diagnoseFile')){
        this.queryParams.diagnoseFile=1
      }else{
        this.queryParams.diagnoseFile=0
      }
      if(data.includes('errorFile')){
        this.queryParams.errorFile=1
      }else{
        this.queryParams.errorFile=0
      }
    },
    // 更新query参数
    upDateQuery () {
      this.$router.push({
        query: {
          ...this.$route.query,
          taskId: this.queryParams.taskId,
          vin: this.queryParams.vin,
          taskName: this.queryParams.taskName,
          modelIds: this.queryParams.modelIds,
          batchId: this.queryParams.batchId,
          upgradeResult: this.queryParams.upgradeResult,
          createTimeLte: this.queryParams.createTimeLte,
          createTimeGte: this.queryParams.createTimeGte,
          mediaVersion: this.queryParams.mediaVersion,
          modelName: this.queryParams.modelName,
          modelCode: this.queryParams.modelCode,
          brandId: this.queryParams.brandId,
          modelId: this.queryParams.modelId,
          normalVersion: this.queryParams.normalVersion,
          taskBigType: this.queryParams.taskBigType,
          upgradeType: this.queryParams.upgradeType,
          noFristCreated: false
        }
      })
    },
    filterItem () {
      //   车系列表下拉框
      this.$api.getAllBrand().then(response => {
        this.brandSeleList = response.data
      })
    },
    getTaskIdInRoute(route) {
      this.queryParams.vin = this.$route.query.vin
      let taskId = route.query.taskId
      if (taskId) {
        this.queryParams.taskId = taskId;
      }
      if(!route.query.noFristCreated){
        //第一次加载才执行 不然重置数据时会造成数据异常
        let { taskFailType, taskOrEcuType } = route.query
        if (taskFailType && taskFailType) {
          this.queryParams.upgradeResult = taskFailType == 'latestInstallAnomaliesTask' ? '安装失败' : taskFailType == 'latestDownloadAnomaliesTask' ? '下载失败' : '检测失败'
          if(taskOrEcuType == 'task'){
            const dateStr = this.$commonFun.getDateStr(new Date()) || '-'
            this.queryParams.createTimeGte = `${dateStr} 00:00:00`
            this.queryParams.createTimeLte = `${dateStr} 23:59:59`
          } else if (taskOrEcuType == 'ecu') {

          }else if (taskOrEcuType == 'N') {

          }
          this.searchData()
        }
      }
    },
    searchData (clearFlag = false) {
      this.refreshData(true,clearFlag)
      this.upDateQuery()
    },
    clearCondition () {
      this.queryParams = { ...initQueryParams }
      this.searchData(true)
    },
    // 导出升级监控列表
    exportUpgradeMonitor () {
      this.exportingDetail = true
      statisticsApi.exportUpgradeMonitor(this.queryParams).then(res => {
        downloadBlobFile(res, '升级监控-'+moment().format('YYYYMMDD-HHmmss')+'.xlsx')

      }).finally(() => {
        this.exportingDetail = false
      })
    },
    loadData (parameter) {
      return statisticsApi.upgradeMonitorList({ ...this.queryParams, ...parameter })
      // return new Promise((resolve, reject) => {
      //   statisticsApi.upgradeMonitorList({ ...this.queryParams, ...parameter }).then(res => {
      //     resolve(res);
      //   });
      // });
    },
    refreshData (isToFirstPage = true, clearFlag = false) {
      if(clearFlag){
        this.$router.push({
          query: {}
        });
      }else if (this.queryParams.vin != this.$route.query.vin && this.queryParams.vin != '' && this.$route.query.vin != undefined) {
           this.$router.push({
             query: {...this.$route.query, vin: this.queryParams.vin,taskId:this.queryParams.taskId,noFristCreated: false}
           });
       }
      // let obj = null
      // if (isToFirstPage) {
      //   obj = { current: 1 , isToFirstPage: true}
      // }
      // this.$refs.table.loadData(obj)
      this.$refs.table.refresh(isToFirstPage)
    },
    changePageSize (page) {
      this.pageInfo.pageNo = page
      this.loadData()
    },
    // 下载日志
    downloadFile (file) {
      fileApi.downloadFileToLocal({ id: file.id }).then((res) => {
        downloadBlobFile(res, file.name)
      })
    },
    ecuListDetail(record){
      console.log(record)

      var param = {
          "vin" : record.vin,
          "batchId" : record.batchId,
          "date": new Date().getTime()
      }
      this.$router.push({path:"/statistics/monitorList/detail","query":{
        "vin":record.vin,
        "batchId":record.batchId,
        "checkSeqNo":record.checkSeqNo,
        "taskId":record.taskId,
        "processId":record.processId,
        "taskName":record.taskName
      }})
      return
    },
    // 查看异常日志showEcuExceptionDetail
    showEcuExceptionDetail (record) {
      this.exceptionDialogQuery = {
        vehicleId: record.vehicleId,
        taskIds: record.taskId,
        processId: record.processId
      }
      this.packageFile=record.file
      this.logTitle=record.logFileName
      this.$nextTick(() => {
        this.$refs.partUpdateExceptionLogDialog.switchVisible(true)
      })
    },
    selectDateRange(date, dateString){
      this.queryParams.createTimeGte = dateString[0] ;
      this.queryParams.createTimeLte = dateString[1] ;
      this.searchData();
    },
    changeTask (val) {
      this.queryParams.taskId = val
    }
  }
}
</script>
<style lang="less" scoped>
.statisticsListPage {
  display: flex;
  flex-direction: column;

  .statisticsListSearch {
    flex: none;
    display: flex;
    /*padding: 20px 24px 10px 24px;*/
    //border-bottom: 1px solid @borderColor;

    .title18 {
      flex: none;
      margin-right: 120px;
    }

    .statisticsListSearchCont {
      flex: 1 0 0;
    }

  }

  .statisticsListMain {
    flex: 1 0 0;
    // 去除overflow: hidden 释放双滚动条
    // overflow: hidden;
    display: flex;

    .statisticsListMainLeft {
      flex: 1 0 0;
      /*padding: 0 20px 24px;*/
      overflow: hidden;
    }

    .statisticsListMainRight {
      position: relative;
      flex: 290px 0 0;
      border-left: 1px solid @borderColor;
      padding: 20px 10px;
      display: flex;
      flex-direction: column;

      >h4 {
        font-weight: bold;
        font-size: 1.1em;
        margin-bottom: 5px;
        flex: none;
      }
    }

    // 升级异常车型分布
    .modelExceptionCountLists {
      flex: 1 0 0;
      min-height: 200px;

      .modelExceptionCountListItem {
        display: flex;
        justify-content: space-between;
      }

      .modelExceptionCountListItemText {
        flex: 190px 0 0;
      }

      .modelExceptionCountListItemNum {
        width: 50px;
        flex: none;
        text-align: right;
      }
    }

    .exceptionIndexPagination {
      flex: none;
      margin-top: 10px;
    }
  }
  .searchBtns{
    margin-top: 25px;
  }
}
 ::v-deep .ant-form-item-label{
  line-height: 20px;
}
::v-deep .ant-form-item{
  line-height: 1;
}
</style>
<style lang="less">
.statisticsListSearchCont {
  .disabledAuthButtonWrap:nth-last-child(1) {
    margin-right: 0;
  }
  .ant-select-selection--multiple {
    max-height: 33px;
    overflow-y: auto;
    overflow-x: hidden;
  }
}
</style>
